package com.zbkj.crmeb.store.response;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.zbkj.crmeb.chant.model.ChannelActivity;
import com.zbkj.crmeb.chant.model.ChannelMemberLevel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 购物车表
 * </p>
 *
 * @author Mr.Zhang
 * @since 2020-05-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="StoreCartResponse", description="购物车ListResponse")
public class StoreCartResponse implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "购物车表ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "用户ID")
    private Integer uid;

    @ApiModelProperty(value = "类型")
    private String type;

    @ApiModelProperty(value = "商品ID")
    private Integer productId;

    @ApiModelProperty(value = "商品属性")
    private String productAttrUnique;

    @ApiModelProperty(value = "商品数量")
    private Integer cartNum;

    @ApiModelProperty(value = "是否为立即购买")
    private Boolean isNew;

    @ApiModelProperty(value = "拼团id")
    private Integer combinationId;

    @ApiModelProperty(value = "秒杀商品ID")
    private Integer seckillId;

    @ApiModelProperty(value = "砍价id")
    private Integer bargainId;

    @ApiModelProperty(value = "拼团活动id")
    private Integer activityGroupId;

    /**
     * 产品详情
     */
    @ApiModelProperty(value = "产品详情")
    private StoreProductCartProductInfoResponse productInfo;

    // 手动添加
    @ApiModelProperty(value = "一级分佣")
    private BigDecimal brokerage;

    @ApiModelProperty(value = "二级分佣")
    private BigDecimal brokerageTwo;

    @ApiModelProperty(value = "商品是否有效")
    private Boolean attrStatus;

    // todo 价格计算有问题
    @ApiModelProperty(value = "商品售价")
    private BigDecimal truePrice;

    // todo 价格计算有问题
    @ApiModelProperty(value = "商品售价")
    private BigDecimal packagePrice;

    private BigDecimal vipTruePrice;
    private Integer trueStock;
    //觅览的成本价
    private BigDecimal costPrice;

    //第三方推送的成本价
    private BigDecimal sourceCostPrice;

    private Integer isReply;
    private String addTime;

    @ApiModelProperty(value = "税费 + 二段物流费用")
    private BigDecimal taxAndSecondPrice;

    @ApiModelProperty(value = "发货时间")
    private String deliveryTime;

    @ApiModelProperty(value = "收货时间")
    private String receivingTime;

//    @ApiModelProperty(value = "会员优惠价格")
//    private BigDecimal vipReducePrice;

    @ApiModelProperty(value = "批采单id")
    private Integer pickingId;

    @ApiModelProperty(value = "批采单商品id")
    private Integer pickingProductId;

    @ApiModelProperty(value = "收货方式：1.大陆批采 2.港澳批采")
    private Integer receiptType;

    @ApiModelProperty(value = "商品活动信息")
    private ChannelActivity channelActivity;

//    @ApiModelProperty(value = "积分或优惠券抵扣金额")
//    private BigDecimal pointsOrCouponDeductionPrice;

    @ApiModelProperty(value = "等级会员加价率售价")
    private BigDecimal levelVipUpPrice;

//    @ApiModelProperty(value = "等级会员优惠金额")
//    private BigDecimal levelVipReducePrice;

    @ApiModelProperty(value = "等级会员信息")
    private ChannelMemberLevel memberLevel;

    @ApiModelProperty(value = "销售类型 0-2b 1-2c")
    private Integer appletType;

    @ApiModelProperty(value = "积分或优惠券抵扣金额集合")
    private List<BigDecimal> deductionPriceList = new ArrayList<>();

    @ApiModelProperty(value = "会员优惠集合")
    private List<BigDecimal> vipReducePriceList = new ArrayList<>();

    @ApiModelProperty(value = "等级会员优惠集合")
    private List<BigDecimal> levelVipReducePriceList = new ArrayList<>();

    @ApiModelProperty(value = "满减送信息")
    private Map<String, Object> discountInfo;

    @ApiModelProperty(value = "isBtoC")
    private Boolean isBtoC;

    @ApiModelProperty(value = "平台加价率")
    private BigDecimal realPlatRatio;

    @ApiModelProperty(value = "供应商加价率")
    private BigDecimal suppliersRatio;

}
